LINQ Expressions এবং Lambda Expressions

Microsoft Technologies - লিংক (LinQ) LINQ এর উন্নত ফিচার (Advanced Features of LINQ) |
216
216

LINQ Expressions এবং Lambda Expressions হলো C#-এ ডেটা কুয়েরি এবং ম্যানিপুলেশনের জন্য ব্যবহৃত দুটি গুরুত্বপূর্ণ কনসেপ্ট। LINQ (Language Integrated Query) ব্যবহার করার সময় আমরা সাধারণত Query Expressions এবং Lambda Expressions দুটো ধরনেই কুয়েরি তৈরি করি। তবে, তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে, এবং প্রতিটির নিজস্ব সুবিধা এবং ব্যবহার ক্ষেত্র আছে।


LINQ Expressions (Query Expressions)

LINQ Query Expressions C# ভাষার একটি বিশেষ সিনট্যাক্স যা SQL-এর মতো কুয়েরি তৈরি করতে ব্যবহার করা হয়। এটি বেশ সহজ এবং পাঠযোগ্য হয়, কারণ এটি SQL স্টাইলে ডেটা কুয়েরি করার সুযোগ দেয়। Query Expressions সাধারণত from, where, select, orderby ইত্যাদি কিওয়ার্ড ব্যবহার করে।

Query Expression Syntax:

var query = from item in collection
            where item.Condition
            select item;

এখানে:

  • from: ডেটার উৎস নির্ধারণ করে (যেমন, লিস্ট, অ্যারে ইত্যাদি)।
  • where: শর্ত নির্ধারণ করে যা পূরণ হলে ডেটা নির্বাচিত হবে।
  • select: নির্বাচিত উপাদানগুলি চূড়ান্ত আউটপুট হিসাবে ফেরত দেয়।

উদাহরণ:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };

// LINQ Query Expression ব্যবহার করে সমস্ত সংখ্যা বের করা যা ৩ এর বেশি
var result = from num in numbers
             where num > 3
             select num;

foreach (var num in result)
{
    Console.WriteLine(num); // Output: 4, 5, 6
}

এখানে from, where এবং select ব্যবহার করে LINQ কুয়েরি তৈরি করা হয়েছে যা ৩ এর বেশি সব সংখ্যাকে নির্বাচন করে।


Lambda Expressions

Lambda Expressions হলো অনামিক (anonymous) ফাংশন, যা C# এর মধ্যে ইনলাইন কোড লিখতে ব্যবহৃত হয়। এটি একটি সংক্ষিপ্ত সিনট্যাক্স যা ডেটা কুয়েরি করার জন্য খুবই কার্যকরী। Lambda Expressions সাধারণত delegate বা Func/Action টাইপের প্যারামিটার হিসেবে ব্যবহৃত হয়, এবং এটি ফাংশনাল প্রোগ্রামিং প্যাটার্নে কাজ করে।

Lambda Expression সাধারণত একটি ফাংশন বা মেথড হিসেবে কাজ করে, যেখানে parameter => expression এই রূপে লেখা হয়।

Lambda Expression Syntax:

(collection => expression)

উদাহরণ:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };

// Lambda Expression ব্যবহার করে সমস্ত সংখ্যা বের করা যা ৩ এর বেশি
var result = numbers.Where(num => num > 3);

foreach (var num in result)
{
    Console.WriteLine(num); // Output: 4, 5, 6
}

এখানে:

  • Where মেথডের মধ্যে num => num > 3 হল একটি Lambda Expression, যা num প্যারামিটার গ্রহণ করে এবং তার মান ৩ এর বেশি কিনা যাচাই করে।

Query Expression এবং Lambda Expression এর মধ্যে পার্থক্য

সিনট্যাক্স:

  • Query Expression: এটি SQL-এর মতো সিনট্যাক্স ব্যবহার করে, যা বেশ পাঠযোগ্য এবং মানুষের কাছে সহজবোধ্য।
  • Lambda Expression: এটি সংক্ষিপ্ত এবং ইনলাইন কোডের জন্য ব্যবহৃত হয়, যা সাধারণত ফাংশনাল প্রোগ্রামিং শৈলীতে লেখা হয়।

ব্যবহার:

  • Query Expression সাধারণত যখন আপনি LINQ কুয়েরি করতে চান এবং SQL স্টাইলে কাজ করতে চান তখন ব্যবহৃত হয়।
  • Lambda Expression আরো ফাংশনাল এবং নমনীয় হয়, যেখানে আপনি একাধিক কার্যকলাপ (operations) একটি লাইনে সম্পন্ন করতে পারেন। এটি Where, Select, Aggregate, OrderBy, ইত্যাদি LINQ মেথডের সাথে বেশ ভালোভাবে কাজ করে।

পাঠযোগ্যতা:

  • Query Expression অধিকাংশ ক্ষেত্রে পাঠযোগ্য, তবে কিছু প্রোগ্রামারের জন্য সিনট্যাক্স একটু ভারী মনে হতে পারে।
  • Lambda Expression বেশি সংক্ষিপ্ত এবং দ্রুত কোড লেখার জন্য উপযুক্ত, তবে মাঝে মাঝে কম্প্রিহেনশন হারাতে পারে বিশেষ করে যখন আপনি একাধিক লজিক ব্যবহার করেন।

Lambda Expression এর উদাহরণ আরো কিছু কেসে

Where with Lambda Expression:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };

// Lambda Expression ব্যবহার করে ফিল্টারিং করা
var filteredNumbers = numbers.Where(num => num % 2 == 0);

foreach (var num in filteredNumbers)
{
    Console.WriteLine(num); // Output: 2, 4, 6
}

এখানে, Where মেথডের মধ্যে Lambda Expression ব্যবহার করে সমস্ত ইভেন সংখ্যা নির্বাচন করা হয়েছে।

Select with Lambda Expression:

List<string> names = new List<string> { "Alice", "Bob", "Charlie" };

// Lambda Expression ব্যবহার করে নামের প্রথম অক্ষর বের করা
var initials = names.Select(name => name[0]);

foreach (var initial in initials)
{
    Console.WriteLine(initial); // Output: A, B, C
}

এখানে, Select মেথডের মাধ্যমে নামের প্রথম অক্ষর নির্বাচন করা হয়েছে।

OrderBy with Lambda Expression:

List<int> numbers = new List<int> { 4, 1, 3, 6, 2, 5 };

// Lambda Expression ব্যবহার করে সজ্জা (ordering)
var sortedNumbers = numbers.OrderBy(num => num);

foreach (var num in sortedNumbers)
{
    Console.WriteLine(num); // Output: 1, 2, 3, 4, 5, 6
}

এখানে, OrderBy মেথড ব্যবহার করে সংখ্যা গুলিকে অধিকৃত ক্রমে সাজানো হয়েছে।


Query Expression এবং Lambda Expression একসাথে ব্যবহার

LINQ Expressions এর শক্তি মূলত Query Expressions এবং Lambda Expressions একসাথে ব্যবহার করার মাধ্যমে অনেক বৃদ্ধি পায়। আপনি একটি Query Expression ব্যবহার করে কুয়েরি তৈরি করতে পারেন, এবং তারপর সেই কুয়েরি তে Lambda Expression প্রয়োগ করতে পারেন।

উদাহরণ:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };

// Query Expression এর সাথে Lambda Expression ব্যবহার করা
var result = from num in numbers
             where num % 2 == 0
             select num;

foreach (var num in result)
{
    Console.WriteLine(num); // Output: 2, 4, 6
}

এখানে, Query Expression দিয়ে ফিল্টার করা হয়েছে এবং তারপর select অংশে Lambda Expression ব্যবহার করা হয়েছে।


উপসংহার

  • LINQ Expressions ব্যবহার করা খুবই সহজ এবং SQL-এর মতো গঠনযুক্ত। তবে এটি কিছুটা সীমিত হতে পারে, যেমন একাধিক লজিক বা অপারেশন একত্রে করার ক্ষেত্রে।
  • Lambda Expressions অত্যন্ত শক্তিশালী, সংক্ষিপ্ত এবং নমনীয়, যা একাধিক কুয়েরি অপারেশন এবং ফাংশনাল প্রোগ্রামিং কৌশলকে সমর্থন করে।
  • Query Expressions এবং Lambda Expressions একসাথে ব্যবহার করার মাধ্যমে আপনি আরও শক্তিশালী এবং ফ্লেক্সিবল কোড লিখতে পারবেন।
common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion